"""
在 Python 中，"interning"（也称为字符串驻留）是指一种优化技术，它确保相同的字符串只创建一个实例。这样做的好处是节省内存，
并且可以加快字符串比较的速度，因为比较的是对象的引用而不是内容。

Python 会自动对一些小的整数和短字符串进行 intern。对于字符串，如果它们是字面量并且长度较短（通常小于 20 个字符），
Python 解释器可能会将它们存储在一个共享的表中，这样无论在哪里定义相同的字符串，实际上都会指向同一个对象。

你可以使用内置函数 sys.intern() 来手动 intern 字符串，即使它们不是字面量或长度较长。这对于那些需要频繁比较但又不希望每次都创建新对象的长字符串特别有用。
"""
# 1. 自动interning
a = 'hello'
b = 'hello'

print(a is b)  # 输出: True

# 2. 手动interning
import sys

s1 = "a very long string that may not be interned by default"
s2 = "a very long string that may not be interned by default"

# 在 intern 之前，s1 和 s2 可能不是同一个对象
print(s1 is s2)  # 输出: False

# 使用 sys.intern() 进行 intern
s1 = sys.intern(s1)
s2 = sys.intern(s2)

# 现在 s1 和 s2 应该是同一个对象
print(s1 is s2)  # 输出: True
